package bishiqiangxun;
import java.util.Scanner;
public class Text3 {
    //笔试强训 day36 第三题 abb
    //算法 : 后缀和  动态规划
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        //统计一个后缀和数组
        int n = in.nextInt();
        String str = in.next();
        int[][] dp = new int[n+1][26];
        //dp[i][j] 表示 在str中i位置之后对应的字符出现的个数
        //初始化dp数组
        for(int i = n-1; i >= 0; i--) {
            char ch = str.charAt(i);
            for(int j = 0; j < 26; j++) {
                dp[i][j] = dp[i+1][j];  //一直累加  对应字符出现的个数

            }
            dp[i][ch-'a']++;
        }

        long count = 0;
        //使用dp数组
        for(int i = 0; i < n;i++) {
            char ch = str.charAt(i);
            for(int j = 0; j < 26;j++) {
                if(j!= ch-'a' && dp[i][j] >= 2) {
                    count += dp[i+1][j] * (dp[i+1][j] -1) /2;
                }
            }
        }

        System.out.println(count);
    }
}
